package obstaculo;

import nivel.*;
import sprite.obstaculos.*;
import personaje.*;

/**
 * Clase abstracta utilizada para factorizar las propiedades de los obstaculos
 * logicos
 * 
 * @author Agustin Orge (LU.85538)
 * @author Victoria Martinez de la Cruz (LU.87620)
 */
public abstract class Obstaculo {

	/** Casillero actual */
	protected Casillero casilleroActual;

	/** Icono del obstaculo */
	protected SpriteObstaculo icono;

	/**
	 * Constructor de un obstaculo
	 * 
	 * Recibe el casillero al que quedara asociado
	 * 
	 * @param ca
	 *            casillero que contendra al obstaculo
	 */
	protected Obstaculo(Casillero ca) {
		casilleroActual = ca;
		casilleroActual.setObstaculo(this);
	}

	// comandos
	/**
	 * Reaccion al encontrarse con un personaje
	 * 
	 * @param m
	 *            Mario
	 */
	public boolean reaccionar(Mario m) {
		return false;
	}

	/**
	 * Retorna la imagen asociada al obstaculo
	 * 
	 * @return icono
	 */
	public SpriteObstaculo getIcono() {
		return icono;
	}

	/**
	 * Establece un icono al obstaculo
	 * 
	 * @param i
	 *            el icono
	 */
	protected void setIcono(SpriteObstaculo i) {
		icono = i;
	}

}
